package com.hjm.project.accounts.virtualPolicy.service;

import java.io.File;
import java.util.List;
import java.util.concurrent.CompletableFuture;

import com.hjm.project.accounts.virtualPolicy.domain.VirtualPolicy;
import com.hjm.project.job.task.domain.JobTask;

/**
 * 商户虚户政策Service接口
 * 
 * @author maker-platform
 * @date 2022-03-14
 */
public interface IVirtualPolicyService {
    /**
     * 查询商户虚户政策
     * 
     * @param id 商户虚户政策ID
     * @return 商户虚户政策
     */
    public VirtualPolicy selectVirtualPolicyById(Integer id);

    /**
     * 查询商户虚户政策列表
     * 
     * @param virtualPolicy 商户虚户政策
     * @return 商户虚户政策集合
     */
    public List<VirtualPolicy> selectVirtualPolicyList(VirtualPolicy virtualPolicy);

    /**
     * 查询商户虚户政策列表
     *
     * @param virtualPolicy 商户虚户政策
     * @return 商户虚户政策一个结果
     */
    public VirtualPolicy selectVirtualPolicyOne(VirtualPolicy virtualPolicy);

    /**
     * 新增商户虚户政策
     * 
     * @param virtualPolicy 商户虚户政策
     * @return 结果
     */
    public CompletableFuture<JobTask> insertVirtualPolicy(VirtualPolicy virtualPolicy, File files);

    /**
     * 修改商户虚户政策
     * 
     * @param virtualPolicy 商户虚户政策
     * @return 结果
     */
    public int updateVirtualPolicy(VirtualPolicy virtualPolicy);

    /**
     * 批量删除商户虚户政策
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteVirtualPolicyByIds(String ids);

    /**
     * 删除商户虚户政策信息
     * 
     * @param id 商户虚户政策ID
     * @return 结果
     */
    public int deleteVirtualPolicyById(Integer id);
}
